package com.chatTools.server.session.inter;


import io.netty.channel.Channel;

/**
 * @author： pang-yun
 * @date： 2021-09-16 16:02
 * 功能目的 ：用于 会话管理接口
 */

public interface ISession {

    /**
     * 绑定会话
     * @param channel  哪一个channel 要绑定会话
     * @param username  who
     */
    void bind(Channel channel, String username);

    /**
     * 解除会话
     * @param channel
     */
    void unbind(Channel channel);

    /**
     * 获取属性
     * @param channel   哪一个channel
     * @param name    属性名
     * @return  属性值
     */
    Object getAttribute(Channel channel,String name);

    /**
     * 设置属性
     * @param channel  哪一个channel
     * @param name   属性名
     * @param value  属性值
     */
    void setAttribute(Channel channel, String name, Object value);


    /**
     * 根据用户名获取 channel
     * @param username  用户名
     * @return channel
     */
    Channel getChannel(String username);

}
